package com.study.io.bio.demo.output;

import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;

/**
 * 对象输出流
 * 对象必须继承序列化接口
 *
 * @author wuxj
 */
public class ObjectOutputStreamDemo {
    public static void main(String[] args) throws Exception {
        List<String> list = new ArrayList<String>();
        list.add("123");
        list.add("456");

		/*ObjectOutputStream 和 ObjectInputStream 分别与 FileOutputStream 和
		FileInputStream 一起使用时，可以为应用程序提供对对象的持久存储。*/

        // 将学生信息封装到student.txt中
        // 创建一个向 student.txt 的文件中写入数据的文件输出流。
        FileOutputStream fot = new FileOutputStream("d://123.txt");
        //ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream。可以使用 ObjectInputStream 读取（重构）对象。
        ObjectOutputStream oos = new ObjectOutputStream(fot);
        //writeObject 方法负责写入特定类的对象状态，以便相应的 readObject 方法可以恢复它。
        oos.writeObject(list);

        // 关闭流
        oos.close();
        fot.close();
    }
}
